package io.gitee.sfch.chunmi.entity;

import java.util.List;

/**
 * 分页对象接口，用于针对列表页等分页场景的数据传输。该接口提供一个通用的分页对象接口来移除对DAO层分页实现的耦合。
 * <p>
 * 不同的ORM需要提供到该接口的工具栏，在没有特殊需求的情况下，默认可以使用 {@link PaginationImpl} 进行实现
 *
 * @see PaginationImpl
 */
public interface Pagination<T> {

    /**
     * 获取当前页码
     *
     * @return 页码
     */
    long getPageNumber();

    /**
     * 获取分页大小
     *
     * @return 分页大小
     */
    long getPageSize();

    /**
     * 获取数据总数
     */
    long getTotal();

    /**
     * 获取分页的数据
     */
    List<T> getRecords();
}